package com.yx.study.leet.primary.math;

/**
 * 罗马数字转数字
 * https://leetcode.cn/leetbook/read/top-interview-questions-easy/xn4n7c/
 */
public class RomanToInt {
    public int romanToInt(String s) {
        int ans = 0;
        int n = s.length();
        for (int i = 0; i < n; i++) {
            int val = getInt(s.charAt(i));
            if (i < n - 1 && val < getInt(s.charAt(i + 1))) {
                ans -= val;
            } else {
                ans += val;
            }
        }
        return ans;
    }

    private int getInt(char c) {
        switch (c) {
            case 'I':
                return 1;
            case 'V':
                return 5;
            case 'X':
                return 10;
            case 'L':
                return 50;
            case 'C':
                return 100;
            case 'D':
                return 500;
            case 'M':
                return 1000;
            default:
                return 0;
        }
    }
}
